Micron Document
██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝


🬧 The NomadNet Encyclopedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

🔍 Search

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Kubernetes
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwbqKubernetes (abbreviato mwbgK8s, pronunciato /ˌk(j)uːbərˈnɛtɪs/) è un sistema mwbwopen source di mwcaorchestrazione e gestione di mwcqcontainer.cite-ref-1[1] Inizialmente sviluppato da mwdgGoogle, adesso è mantenuto da Cloud Native Computing Foundation. Funziona con molti sistemi di containerizzazione, compreso mweaDocker.

Contents

Pod
Service
Note

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Architettura

Kubernetes è un software formato da più componenti software distribuite in nodi master e nodi worker che formano il cluster kubernetes. Un nodo è un server fisico oppure un server virtuale. Essi si coordinano per l'esecuzione dei carichi di lavoro ovvero delle applicazioni containerizzate (container).

Le componenti che si occupano di controllare l'esecuzione dei container applicativi sono raggruppate nel mwgqmwggcontrol plane. Il mwgwdata plane raggruppa invece le componenti software coinvolte nelle funzionalità che gestiscono il carico di lavoro del cluster. Il controllo del sistema avviene specificando un mwhgdesired state (stato desiderato). Ogni partecipante si attiva per contribuire a mutare il sistema verso il desired state definito nel master.

Control Plane Node

Il master o Control Plane Node è l'attore centrale di un cluster in quanto a lui fanno riferimento tutti gli altri nodi per coordinarsi nell'esecuzione dei container. Il master si occupa solo della funzione di orchestrare i nodi e non di eseguire container applicativi. Esegue i processi della Control Plane ed essendo questi processi centrali al funzionamento del cluster, spesso il master viene replicato su più server in modo da garantire un'mwiqalta disponibilità del servizio.

kube-apiserver

Questo componente implementa e rende disponibili le mwjaAPI di Kubernetes, esponendo una interfaccia REST verso lo stato del cluster. Esso rappresenta l'unico canale di coordinamento e controllo, sia per i nodi sia per gli operatori/amministratori.

kube-controller-manager

Il controller manager si occupa costantemente di fare in modo che lo stato attuale del sistema coincida con il desired state all'interno del cosiddetto mwjwreconciliation loop. Gli interventi necessari al raggiungimento del desired state vengono fatti da mwkacontroller per specifiche funzionalità attivati a loro volta dal controller manager.

kube-scheduler

Lo mwkwscheduler decide come assegnare il carico di lavoro specificato dal desired state sui nodi che compongono il cluster. La scelta dei nodi a cui assegnare il carico dipende dall'algoritmo di allocazione usato. Nel caso più comune la scelta viene fatta in base alla disponibilità di risorse sui nodi.

Etcd

mwlgEtcd è il componente del master che si occupa di mantenere lo stato del sistema. I componenti del control plane sono stateless e fanno riferimento, tramite mwlwkube-apiserver, allo stato mantenuto in etcd. Per questo motivo anche il demone mwmaetcd viene ridondato nelle installazioni ad mwmqalta disponibilità.

Worker Node

Un nodo, anche chiamato mwnaworker, si occupa di eseguire il carico di lavoro secondo le modalità definite dal master. Per poter eseguire i carichi di lavoro, il nodo deve disporre di un container runtime come mwnqDocker o mwngrkt.

Un nodo è identificabile uno a uno con un singolo server del cluster. Spesso quindi ci si riferisce a un gruppo di nodi direttamente con "cluster Kubernetes".

L'architettura decentralizzata del cluster permette a un nodo di mantenere una continuità limitata nel supportare il carico di lavoro anche in caso di fallimento nella comunicazione col master.

kubelet

Il mwowkubelet è il componente di control plane che controlla le risorse e gestisce il carico di lavoro su un singolo nodo. Mantiene una comunicazione col master e interviene costantemente sul nodo al fine di raggiungere e mantenere il desired state.

kube-proxy

Il componente mwpgproxy è dedicato all'inoltro del traffico fra i nodi e alla configurazione delle regole networking sugli stessi. Tramite il proxy viene resa trasparente la gestione dell'accesso ai mwpwservice.

Container runtime

Il carico di lavoro è composto da container che vengono eseguiti in un container runtime controllato dal kubelet. Il runtime astrae aspetti quali le risorse computazionali disponibili, lo storage e il networking. mwqgDocker è un esempio di container runtime compatibile con Kubernetes.

Risorse del cluster

In Kubernetes lo stato del sistema è descritto mediante l'utilizzo del concetto di risorsa. Le risorse descrivono il mwrqdesired state, cioè lo stato desiderato del sistema. Una volta creata o modificata la descrizione di una risorsa sul master, le varie componenti di Kubernetes apportano le necessarie modifiche per variare dallo stato attuale del sistema verso lo stato desiderato. Alcuni esempi di modifiche al sistema possono essere l'avvio di nuovi container e la configurazione della rete per esporli su Internet.

L'utilizzo di un modello a risorse permette di descrivere con un mwrwlinguaggio dichiarativo lo stato che il sistema deve assumere, senza la necessità di conoscere la tecnologia sottostante. Questo aspetto è particolarmente importante nei contesti cloud in cui Kubernetes viene offerto come servizio avendo la flessibilità di scelta sulla tecnologia sottostante.

Kubernetes permette di aggiungere etichette chiave-valore chiamate "labels" a qualunque risorsa, come ad esempio a mwsqpod e mwsgnodi. Questo permette di creare riferimenti tra le varie risorse per implementare molteplici funzionalità.

Pod

Il mwtqpod è la risorsa che descrive l'unità elementare eseguibile su un nodo del cluster. Un pod raggruppa dei container che condividono le risorse e che vengono eseguiti sullo stesso nodo. Il pod si occupa di astrarre rete e storage al fine di poter essere spostato e replicato facilmente sui nodi del cluster, permettendo una forte mwtgscalabilità orizzontale, in particolare alle applicazioni orientate ai microservizi.

I pod possono essere gestiti manualmente tramite le mwuqAPI di Kubernetes o più di frequente tramite i controller che assicurano il mantenimento della loro esecuzione.

Service

Il mwvaservice definisce come esporre dei pod su una rete interna o esterna. Il service definisce un nome che viene risolto dal DNS interno al cluster con uno dei pod a esso associati. I pod associati al service sono quelli che hanno in comune la label definita dal service. Di default un service è esposto all'interno di un cluster, ma può essere esposto anche all'esterno del cluster.cite-ref-kubernetes-101-external-access-2-0[2]

Note

cite-note-11. mwxwmwyagithub.com, mwyqhttps://github.com/kubernetes/kubernetes/mwyg Titolo mancante per url mwywurl (aiuto).
cite-note-kubernetes-101-external-access-22. mwaqmwagdasblinkenlichten.com, mwawhttp://www.dasblinkenlichten.com/kubernetes-101-external-access-into-the-cluster/mwba Titolo mancante per url mwbqurl (aiuto).

Voci correlate
Altri progetti

Altri progetti

• Wikimedia Commons

• Wikimedia Commons contiene immagini o altri file su Kubernetes

Collegamenti esterni

• (EN) Sito ufficiale, su kubernetes.io.
• (EN) Blog ufficiale, su kubernetes.io.
• citerefgithub(EN) Kubernetes, su GitHub.
• Repository sorgenti di Kubernetes, su github.com.
• Sito di segnalazione bug, su github.com.